home *** CD-ROM | disk | FTP | other *** search
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_
- o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- /*
- ** SaveToSANYO.fred
- **
- ** $VER: SaveToSANYO.fred 1.0.0 (20.12.94)
- **
- ** See SaveToSANYO.fred.pre for complete documentation.
- **
- ** We don't care if there is any image data in the current
- ** buffer, since a previously called saver will have displayed
- ** it on graphics board already.
- **
- ** Clips Imported:
- ** FREDSANTimeCode - Starting NDF SMPTE timecode
- ** FREDSANSFlimit - Threshold value for the number of
- ** single frame edits per cell
- ** which will cause a single multi-
- ** frame APND
- **
- ** NOTE: Clip names are case sensitive.
- **
- ** This script requires FRED v1.4.0 (or higher) to run. Also
- ** required is ADPro v2.5.0 (or higher).
- **
- ** Copyright 1994 SyntheToonz, Inc., Kenneth Jennings
- ** All Rights Reserved
- **
- ** Internet: kenneth@daffy.aatech.com
- */
-
-
- ADDRESS "ADPro"
- OPTIONS RESULTS
-
- PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
-
- NL = '0A'X
- SQ = '27'X
- DQ = '22'X
- TRUE = 1
- FALSE = 0
-
- NULLSTRING = DQ || DQ
-
-
- /*
- ** Get the required clips.
- */
-
- TimeCode = GETCLIP( "FREDSANTimeCode" )
- IF (TimeCode = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDSANTimeCode," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- SFlimit = GETCLIP( "FREDSANSFlimit" )
- IF (SFlimit = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDSANSFlimit," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
-
- /*
- ** Try to startup the AREXX communications handler
- */
-
- RXPort = StartRXComm()
-
- IF (RXPort = NULLSTRING) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Unable to start ARexx" || NL ||,
- "communications handler."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
-
- /*
- ** If this is frame 1 then send setup string
- ** and starting timecode to deck
- */
-
- IF (FirstCallSeq = 1) THEN DO
- CmdString = RX SQ||ADDRESS RXPort DQ||'EDTP5;INIT;EDOT:'||TimeCode||DQ||SQ
- ADDRESS 'COMMAND' CmdString
- END
-
-
- /*
- ** If frame count per cell is less than the single
- ** frame edit threshold then loop for each edit.
- **
- ** Met or exceeded threshold means we do a single
- ** edit for the multiple frames in this cell.
- */
-
- IF (Length < SFlimit) THEN DO
- Count = 1
-
- DO WHILE (Count <= Length)
- CmdString = RX SQ||ADDRESS RXPort DQ||'APND 1'||DQ||SQ
- ADDRESS 'COMMAND' CmdString
- Count = Count + 1
- END
- END
- ELSE DO
- CmdString = RX SQ||ADDRESS RXPort DQ||'APND '||Length||DQ||SQ
- ADDRESS 'COMMAND' CmdString
- END
-
-
- EXIT 0
-
-
-
- StartRXComm:
- Handler1 = "SANARexxHandler"
- Handler2 = "BCDARexxHandler"
-
- IF (EitherPort() = NULLSTRING) THEN
- CALL StartProgram(Handler1)
-
- IF (EitherPort() = NULLSTRING) THEN
- CALL StartProgram(Handler2)
-
- RETURN EitherPort()
-
-
-
- StartProgram:
- PARSE ARG ProgName
-
- Max_Seconds_To_Load = 3
- Flag = FALSE
-
- TIME( 'R' )
-
- DO WHILE ( (TIME( 'E' ) < Max_Seconds_To_Load) & (EitherPort() = NULLSTRING))
- IF (Flag = FALSE) THEN DO
- CmdString = "Run <NIL: >NIL:" ProgName "-t30 -a"
- ADDRESS 'COMMAND' CmdString
- Flag = TRUE
- END
- ADDRESS 'COMMAND' 'Wait 1'
- END
-
- RETURN
-
-
-
- EitherPort:
- RXPort1 = "SANARexx.port"
- RXPort2 = "BCDAREXX.PORT"
-
- IF (FindPort(RXPort1) ~= NULLSTRING) THEN
- RETURN RXPort1
-
- IF (FindPort(RXPort2) ~= NULLSTRING) THEN
- RETURN RXPort2
-
- RETURN NULLSTRING
-
-
-
- FindPort:
- PARSE ARG PortName
-
- IF ( SHOW( 'Ports', PortName ) = FALSE) THEN
- RETURN NULLSTRING
-
- RETURN PortName
-
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_
- o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- /*
- ** SaveToSANYO.fred.pre
- **
- ** $VER: SaveToSANYO.fred.pre 1.0.0 (20.12.94)
- **
- ** SaveToSANYO.fred.pre documentation:
- **
- ** If the SaveToSANYO.fred script appears in the InvokeADPro
- ** list, this program will ask the user to select the
- ** starting NDF SMPTE timecode, and the single frame/multi-
- ** frame edit threshold.
- **
- ** The SMPTE timecode validation is fairly unforgiving, since
- ** it requires all the digits (including leading zeros) be
- ** present, but at least it prevents bogus values. My excuse
- ** is that I wrote it in ten minutes.
- **
- ** SaveToSANYO.fred documentation:
- **
- ** This program can be run from an InvokeADPro list to save
- ** images to the SANYO GVR-S950 (or compatible BCD equipment)
- ** single frame VTR. Including this program automatically
- ** causes a pre script to be executed as well to ask the user
- ** to select the communication command filename, the starting
- ** timecode, and the single frame/multiple frame edit threshold.
- **
- ** Normally, multiple frames per cell will result in a single
- ** frame edit for each frame. If the number of frames exceeds
- ** or equals the given threshold, then a single APND event will
- ** occur for the cell. We at SyntheToonz find this useful to
- ** make the 10 second (300 frame) static images at the beginning
- ** and end of the animations which make editing from the ani-
- ** mation master tape to another tape easier. It is not a good
- ** idea to use the threshold to make pauses in the middle of a
- ** rolling animation. In our experience, the video signal
- ** shifts and the quality visibly changes, and even with a TBC
- ** the video playback is still not stable.
- **
- ** Note: Communications with the deck is accomplished by sending
- ** commands to the ARexx port of another program which actually
- ** handles talking to the deck. The script will first try to
- ** locate the port SANARexx.port, and then the port
- ** BCDAREXX.PORT. If neither port is located, then the program
- ** will first attempt to run the SANARexxHandler program, and
- ** then the BCDARexxHandler program. Afterwards, the script
- ** will try to find one of the Arexx ports again. If the script
- ** still fails, then the user is notified of the problem.
- **
- ** Note also: This program is tested on the SANYO GVR-S950 deck
- ** using the SANARexxHandler program. While the documentation
- ** (based largely on information from BCD) says the ARexx port
- ** to use is called SANARexx.port, it really is BCDAREXX.PORT.
- ** Since I get the feeling SANYO is trying hard to SANYO-tize
- ** their documentation and supporting programs, I believe at
- ** some point in the future the ARexx port name will change to
- ** what is documented in their manual.
- **
- ** Those fluent in ARexx may wonder why the ARexx communication
- ** with the BCD/SANARexx.port is so convoluted. The reason is,
- ** that after exhaustive testing, this is the only way the port
- ** would accept and process commands on our system. The
- ** development system is an A2000 with a GVP 33MHz 040 with a
- ** Toaster. We adamantly avoid running PD hacks or even the
- ** standard commodities on our system. The ARexx communications
- ** work if a command is manually typed and executed in the Shell
- ** with the RX command. The exact same command sent to the
- ** BCD/SANARexx.port from a script fails. There is no error and
- ** no results, as if the command were diverted or suppressed
- ** before it reached the port. Anyway, communication is
- ** accomplished by building a messy RX command string with the
- ** necessary embedded quotes and using the Shell to execute the
- ** generated command string. This is messy, but at least it
- ** works.
- **
- ** Clips Exported:
- ** FREDSANTimeCode - Starting NDF SMPTE timecode
- ** FREDSANSFlimit - Threshold value for the number of
- ** single frame edits per cell
- ** which will cause a single multi-
- ** frame APND
- **
- ** NOTE: Clip names are case sensitive.
- **
- ** This script requires FRED v1.4.0 (or higher) to run. Also
- ** required is ADPro v2.5.0 (or higher).
- **
- ** Copyright 1994 SyntheToonz, Inc., Kenneth Jennings
- ** All Rights Reserved
- **
- ** Internet: kenneth@daffy.aatech.com
- */
-
-
- ADDRESS "ADPro"
- OPTIONS RESULTS
-
- PARSE ARG NumberOfCells NumberOfFrames
-
- NL = '0A'X
- SQ = '27'X
- DQ = '22'X
- TRUE = 1
- FALSE = 0
-
- NULLSTRING = DQ || DQ
- ValidTC = FALSE
-
- ADPRO_TO_FRONT
-
-
- /*
- ** Ask the user to enter the starting timecode.
- */
-
- TimeCode = "00:00:00:00"
-
- DO loop=1 UNTIL (ValidTC = TRUE)
- Message = "Enter starting NDF SMPTE" || NL || "timecode as HH:MM:SS:FF"
- CALL "FREDSCRIPTS:FREDFunctions/GetAString" '"'Message'"' '"'TimeCode'"' TRUE
-
- TimeCode = RESULT
-
- IF (TimeCode = NULLSTRING) THEN
- EXIT 10
-
- TimeCode = STRIP(TimeCode)
-
- IF (LENGTH(TimeCode) ~= 11) THEN DO
- Message = "Invalid SMPTE TimeCode" || NL || "(Length)"
- OKAY1 '"'Message'"'
- ITERATE loop
- END
-
- Sep1 = SUBSTR(TimeCode, 3, 1)
- Sep2 = SUBSTR(TimeCode, 6, 1)
- Sep3 = SUBSTR(TimeCode, 9, 1)
-
- IF (Sep1 ~= ':') | (Sep2 ~= ':') | (Sep3 ~= ':') THEN DO
- Message = "Invalid SMPTE TimeCode" || NL || "(: separators)"
- OKAY1 '"'Message'"'
- ITERATE loop
- END
-
- HHdigits = SUBSTR(TimeCode, 1, 2)
- MMdigits = SUBSTR(TimeCode, 4, 2)
- SSdigits = SUBSTR(TimeCode, 7, 2)
- FFdigits = SUBSTR(TimeCode, 10,2)
-
- IF (ValidateSMPTEdigits(HHdigits, 0, 23, 'hours') = FALSE) THEN
- ITERATE loop
-
- IF (ValidateSMPTEdigits(MMdigits, 0, 59, "minutes") = FALSE) THEN
- ITERATE loop
-
- IF (ValidateSMPTEdigits(SSdigits, 0, 59, "seconds") = FALSE) THEN
- ITERATE loop
-
- IF (ValidateSMPTEdigits(FFdigits, 0, 29, "frames") = FALSE) THEN
- ITERATE loop
-
- ValidTC = TRUE
- END
-
-
- /*
- ** Ask the user for the single frame edit limit threshold per cell.
- */
-
- CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"'"Enter Single Frame" || NL || "edit limit per cell"'"' 300 2 900 TRUE
- IF (RESULT = (2-1)) THEN
- EXIT 10
- SFlimit = RESULT
-
-
- /*
- ** Update the clips.
- */
-
- SETCLIP( "FREDSANTimeCode", TimeCode )
- SETCLIP( "FREDSANSFlimit", SFlimit )
-
- EXIT 0
-
-
-
- /*
- ** Make sure a set of SMPTE digits is numeric and
- ** falls within the accepted range
- */
-
- ValidateSMPTEdigits:
- PARSE ARG STRdigits, MINdigits, MAXdigits, sectionText
-
- IF ( DATATYPE(STRdigits, Numeric) = FALSE) THEN DO
- Message = "Invalid SMPTE TimeCode" || NL ||,
- "(" || sectionText STRdigits "not numeric)"
- OKAY1 '"'Message'"'
- return FALSE
- END
-
- IF (STRdigits < MINdigits) THEN DO
- Message = "Invalid SMPTE TimeCode" || NL ||,
- "(" || sectionText STRdigits "<" MINdigits || ")"
- OKAY1 '"'Message'"'
- return FALSE
- END
-
- IF (STRdigits > MAXdigits) THEN DO
- Message = "Invalid SMPTE TimeCode" || NL ||,
- "(" || sectionText STRdigits ">" MAXdigits || ")"
- OKAY1 '"'Message'"'
- return FALSE
- END
-
- return TRUE
-
-
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_
- o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- /*
- ** SaveToVT_BUFFER.fred
- **
- ** $VER: SaveToVT_BUFFER.fred 1.0.0 (20.12.94)
- **
- ** This program can be run from an InvokeADPro list to save
- ** images to the Video Toaster display board. Including this
- ** program automatically causes a .pre script to be executed as
- ** well (to select the DV channel and the Scale option).
- **
- ** Clips Imported:
- ** FREDVTBuffer - Which Toaster DV channel to save the
- ** image in
- ** 1 = DV1
- ** 2 = DV2
- ** FREDVTScaleOpt - Scale option if image is not correct
- ** the correct Toaster frame size
- ** 0 = Do nothing,
- ** 1 = Scale to normal frame size
- ** 2 = Center on a backdrop
- **
- ** NOTE: Clip names are case sensitive.
- **
- ** This script requires FRED v1.4.0 (or higher) to run. Also
- ** required is ADPro v2.5.0 (or higher).
- **
- ** Copyright 1994 SyntheToonz, Inc., Kenneth Jennings
- ** All Rights Reserved
- **
- ** Internet: kenneth@daffy.aatech.com
- */
-
-
- ADDRESS "ADPro"
- OPTIONS RESULTS
-
-
- PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
-
-
- NL = '0A'X
- SQ = '27'X
- DQ = '22'X
- TRUE = 1
- FALSE = 0
- ToasterWidth = 752
- ToasterHeight = 480
-
-
- /*
- ** Get the required clips.
- */
-
- ToasterDV = GETCLIP( "FREDVTBuffer" )
-
- IF (ToasterDV = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDVTBuffer," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- ScaleOpt = GETCLIP( "FREDVTScaleOpt" )
-
- IF (ScaleOpt = "") THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Required clip, FREDVTScaleOpt," || NL ||,
- "is not specified."
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
-
- /*
- ** Check to see if Toaster is running
- */
-
- IF (~SHOW( 'P', "ToasterARexx.port" )) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Switcher is not running!"
- ADPRO_TO_BACK
- EXIT 10
- END
-
-
- /*
- ** See what type of data is loaded in ADPro/MorphPlus.
- */
-
- CALL "FREDSCRIPTS:FREDFunctions/CheckForRawImageData" TRUE
- IF (RESULT ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "No RAW image data in memory!"
- ADPRO_TO_BACK
- EXIT 10
- END
-
-
- /*
- ** Check Image Size
- */
-
- XSIZE
- ImageWidth = ADPRO_RESULT
-
- YSIZE
- ImageHeight = ADPRO_RESULT
-
- IF (ImageWidth ~= ToasterWidth) | (ImageHeight ~= ToasterHeight) THEN DO
-
- IF (ScaleOpt = 1) THEN DO
- /*
- ** MAKE it fit the Toaster frame buffer
- */
-
- /*
- ** Adjust the pixel aspect of the image.
- */
- OPERATOR "DEFINE_PXL_ASPECT" 22 26
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Could not define pixel aspect ratio."
- ADPRO_TO_BACK
- EXIT 10
- END
-
- /*
- ** Scale the image to fill a ToasterWidth x ToasterHeight screen.
- */
- ABS_SCALE ToasterWidth ToasterHeight
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Could not scale to Toaster frame size."
- ADPRO_TO_BACK
- EXIT 10
- END
-
- END
-
- IF (ScaleOpt = 2) THEN DO
- /*
- ** CENTER the image on a backdrop
- */
-
- /*
- ** Save current image to TEMP
- */
- SAVER "TEMP" "XXX" "RAW"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Could not save image to TEMP."
- ADPRO_TO_BACK
- EXIT 10
- END
-
- /*
- ** Load a solid backdrop of the correct size
- */
- LOADER "BACKDROP" "XXX" WIDTH ToasterWidth HEIGHT ToasterHeight COLOR FILL 40 40 100
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Could not create a backdrop."
- ADPRO_TO_BACK
- EXIT 10
- END
-
- /*
- ** Load original image in center of backdrop
- */
- CenterX = (ToasterWidth / 2) - (ImageWidth / 2)
- CenterY = (ToasterHeight / 2) - (ImageHeight / 2)
-
- LOADER "TEMP" "XXX" COMPOFFSET CenterX CenterY COMPMIX 100
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Could not reload TEMP image."
- ADPRO_TO_BACK
- EXIT 10
- END
-
- END
-
- END
-
-
- /*
- ** Send image to the display board.
- */
-
- SAVER "VT_BUFFER" "XXX" BUFFER ToasterDV
- IF (RC ~= 0) THEN DO
- Why = ADPRO_RESULT
- ADPRO_TO_FRONT
- OKAY1 "VT_BUFFER save failed:" || NL || Why || NL ||,
- "Argument Information:" || NL ||,
- "BUFFER = " || ToasterDV
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- EXIT 0
-
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_
- o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- /*
- ** SaveToVT_BUFFER.fred.pre
- **
- ** $VER: SaveToVT_BUFFER.fred.pre 1.0.0 (20.12.94)
- **
- ** If the SaveToVT_BUFFER.fred script appears in the InvokeADPro list,
- ** this program will ask the user to select the DV channel to display
- ** the image in, and the Scale option if the image isn't the correct size
- ** for a Toaster frame/image.
- **
- ** Clips Exported:
- ** FREDVTBuffer - Which Toaster DV channel to save the
- ** image in
- ** 1 = DV1
- ** 2 = DV2
- ** FREDVTScaleOpt - Scale option if image is not correct
- ** the correct Toaster frame size
- ** 0 = Do nothing,
- ** 1 = Scale to normal frame size
- ** 2 = Center on a backdrop
- **
- ** NOTE: Clip names are case sensitive.
- **
- ** This script requires FRED v1.4.0 (or higher) to run. Also
- ** required is ADPro v2.5.0 (or higher).
- **
- ** Copyright 1994 SyntheToonz, Inc., Kenneth Jennings
- ** All Rights Reserved
- **
- ** Internet: kenneth@daffy.aatech.com
- */
-
-
- ADDRESS "ADPro"
- OPTIONS RESULTS
-
- PARSE ARG NumberOfCells NumberOfFrames
-
- NL = '0A'X
- SQ = '27'X
- DQ = '22'X
- TRUE = 1
- FALSE = 0
-
-
- ADPRO_TO_FRONT
-
-
- /*
- ** Ask how scaling (should it be necessary) will be done.
- */
-
- OKAYN '"SaveToVT_BUFFER.fred"',
- '"If image is not 752 x 480:"',
- '" As Is | Scale | Center | Cancel "'
-
- IF (RC = 0) THEN DO
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- ScaleOpt = RC - 1
-
-
- /*
- ** Ask the user which Toaster DV channel to use.
- */
-
- OKAYN '"SaveToVT_BUFFER.fred"',
- '"Display image in which Toaster DV channel?"',
- '" DV1 | DV2 | Cancel "'
-
- IF (RC = 0) THEN DO
- SCREEN_TO_FRONT "FRED"
- EXIT 10
- END
-
- ToasterDV = RC
-
-
- SCREEN_TO_FRONT "FRED"
-
-
- /*
- ** Update the clips.
- */
-
- SETCLIP( "FREDVTBuffer", ToasterDV )
- SETCLIP( "FREDVTScaleOpt", ScaleOpt )
-
- EXIT 0
-
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_ SNIP o_
- o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\ SNIP o\
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- /*
- ** TestBCDAREXX.fred
- **
- ** $VER: TestBCDAREXX.fred 1.0.0 (20.12.94)
- **
- ** Also required is ADPro v2.5.0 (or higher).
- **
- ** Copyright 1994 SyntheToonz, Inc., Kenneth Jennings
- ** All Rights Reserved
- **
- ** Internet: kenneth@daffy.aatech.com
- **
- ** This script can be run from the shell: rx ScriptTest.fred
- ** or it can be called from FRED as part of a script list.
- **
- ** Prior to running this script from the CLI I had running:
- ** 1: ADPro
- ** 2: FRED
- ** 3: Video Toaster Switcher
- ** 4: SANARexxHandler
- ** 5: The GVR-S950 was initialized with SANSETUP.BAT
- ** (And a previously striped tape was loaded)
- **
- ** Because we use the Toaster, we go out of our way to make
- ** sure we don't have any strange commodities or other toys
- ** running on the system.
- **
- ** System in use:
- ** A2000, GVP 33MHz 040, 16M RAM
- ** TBC II, TBC III, (neither one hooked to serial port)
- ** SunRize AD516, (not running or active during tests)
- ** 425M Quantum (int), 105M Quantum (ext), 88M Syquest (ext)
- **
- ** NONE of the attempts to directly communicate with
- ** BCDAREXX.PORT in this script succeeded. In other words
- ** NOTHING happened to the deck, but no error was returned to
- ** the REXX host. The following command strings work when
- ** entered directly from a Shell/CLI:
- **
- ** 6.>rx "ADDRESS BCDAREXX.PORT INIT
- ** 6.>rx "ADDRESS BCDAREXX.PORT INIT"
- ** 6.>rx "ADDRESS 'BCDAREXX.PORT' INIT"
- ** 6.>rx "ADDRESS BCDAREXX.PORT 'INIT'"
- ** 6.>rx "ADDRESS 'BCDAREXX.PORT' 'INIT'"
- */
-
-
- ADDRESS "ADPro"
- OPTIONS RESULTS
-
- /* arguments are irrelavent for this script */
- PARSE ARG FrameNum FrameFName Length LoadFlag FirstCallSeq FirstCallCell
-
-
- RXPort = "BCDAREXX.PORT"
-
-
- SCREEN_TO_FRONT "FRED"
-
-
- /*
- ** Now, try to get deck to do something.
- ** INIT will just start rolling the tape and stop.
- */
-
- /* This works. TELLSAN is a CLI utility to send commands to the deck */
- address 'COMMAND' 'TELLSAN "INIT"'
- OKAY1 "One"
-
- /* This does not work.*/
- ADDRESS BCDAREXX.PORT INIT
- OKAY1 "Two"
-
- /* This works */
- ADDRESS 'COMMAND' 'RX "ADDRESS BCDAREXX.PORT INIT"'
- OKAY1 "Three"
-
- /* This works */
- CmdString = RX '"'ADDRESS RXPort INIT'"'
- OKAY1 CmdString
- ADDRESS 'COMMAND' CmdString
- OKAY "Four"
-
- /* This works */
- CmdString = RX '"'ADDRESS RXPort "INIT" '"'
- OKAY1 CmdString
- ADDRESS 'COMMAND' CmdString
- OKAY "Five"
-
- /* None of the remaining examples work */
-
- /* Show that ADPro is current */
- Adrs = ADDRESS()
- OKAY1 Adrs
-
- /* Set New Address to BCDAREXX.PORT */
- ADDRESS VALUE RXPort
- /* Show that BCDAREXX.PORT is current */
- Adrs = ADDRESS()
- ADDRESS "ADPro" OKAY1 '"'Adrs'"'
-
- INIT
- ADDRESS "ADPro" OKAY1 "Six"
-
- 'INIT'
- ADDRESS "ADPro" OKAY1 "Seven"
-
- "INIT"
- ADDRESS "ADPro" OKAY1 "Eight"
-
- /* Reset address to ADPro */
- ADDRESS
- Adrs = ADDRESS()
- OKAY1 Adrs
-
- /* One Last test */
- CmdString = "ADDRESS" RXPort 'INIT'
- OKAY1 CmdString
- INTERPRET CmdString
- OKAY1 "Nine"
-
-
- EXIT 0
-
-
- /* ************ FINISH *********** */
-
-